import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
/**
 * Clase Metodo que contiene los metodos para escribir y mostrar los datos (binarios) 
 * de un archivo
 * @author Francisco
 *
 */
public class Metodo {
	private File file = null;
/**
 * Constructor de la clase metodo.
 * Recibe un Objeto File Y lo guarda dentro del objeto Metodo
 * @param file objeto File a setear en el objeto Metodo
 */
	public Metodo(File file) {
		this.file = file;
	}

	/**
	 * Metodo para pedir numeros por teclados y escribirlos en un archivo
	 * 
	 * @param file
	 *            Archivo en el cual escribiremos los numeros enteros
	 */
	public void escribirDouble() {

		FileOutputStream fileOut = null;
		DataOutputStream dataOut = null;
		try {
			fileOut = new FileOutputStream(this.file);
			dataOut = new DataOutputStream(fileOut);

			System.out.println("ingrese la serie de numeros deseada.. "
					+ "\n Para salir optrima ctrl+z ... ");
			Scanner sc = new Scanner(System.in);
			while (sc.hasNext()) {
				String aux = sc.next();
				double numeritos = Double.parseDouble(aux);
				dataOut.writeDouble(numeritos);
			}
		} catch (Exception e) {
			try {
				dataOut.close();
			} catch (IOException e1) {
			}
		}
	}

	/**
	 * Metodo para mostrar los valores numericos enteros de un arcivo binario
	 * 
	 * @param file
	 *            Archivo a leer
	 */
	public void mostrarDouble() {
		FileInputStream fileIn = null;
		DataInputStream dataIn = null;
		try {
			fileIn = new FileInputStream(this.file);
			dataIn = new DataInputStream(fileIn);
			double i = 0;
			System.out.println("Mostrando numericos");
			try {
				while (true) {
					i = dataIn.readDouble();
					System.out.println(i);
				}
			} catch (EOFException e) {
			}
		} catch (Exception e) {
		} finally {
			try {
				dataIn.close();
			} catch (IOException e) {
			}
		}
	}
}
